﻿Imports System.ComponentModel

Public Class Product
    Inherits BusinessObjectBase

    Private _ProductId As String
    Private _RangeName As String
    Private _ProductDescription As String
    Private _RangeDescription As String
    Private _TypeDescription As String
    Private _CostPrice As Double
    Private _WholesalePrice As Double
    Private _RetailPrice As Double
    Private _LaborHours As Single
    Private _WholesaleProfitPercentage As Double
    Private _RetailProfitPercentage As Double
    Private _ProductRangeURL As String
    Private _Quantity As Integer

    Const ProductId_Const As String = "ProductId"
    Public Property ProductId() As Int32
        Get
            Return Me._ProductId
        End Get
        Set(ByVal value As Int32)
            If Me._ProductId <> value Then
                Me._ProductId = value
                OnPropertyChanged(ProductId_Const)
            End If
        End Set
    End Property

    Const RangeName_Const As String = "RangeName"
    Public Property RangeName() As String
        Get
            Return Me._RangeName
        End Get
        Set(ByVal value As String)
            If Me._RangeName <> value Then
                Me._RangeName = value
                OnPropertyChanged(RangeName_Const)
            End If
        End Set
    End Property

    Const ProductDescription_Const As String = "ProductDescription"
    Public Property ProductDescription() As String
        Get
            Return Me._ProductDescription
        End Get
        Set(ByVal value As String)
            If Me._ProductDescription <> value Then
                Me._ProductDescription = value
                OnPropertyChanged(ProductDescription_Const)
            End If
        End Set
    End Property

    Const RangeDescription_Const As String = "RangeDescription"
    Public Property RangeDescription() As String
        Get
            Return Me._RangeDescription
        End Get
        Set(ByVal value As String)
            If Me._RangeDescription <> value Then
                Me._RangeDescription = value
                OnPropertyChanged(RangeDescription_Const)
            End If
        End Set
    End Property

    Const TypeDescription_Const As String = "TypeDescription"
    Public Property TypeDescription() As String
        Get
            Return Me._TypeDescription
        End Get
        Set(ByVal value As String)
            If Me._TypeDescription <> value Then
                Me._TypeDescription = value
                OnPropertyChanged(TypeDescription_Const)
            End If
        End Set
    End Property

    Const CostPrice_Const As String = "CostPrice"
    Public Property CostPrice() As Single
        Get
            Return Me._CostPrice
        End Get
        Set(ByVal value As Single)
            If Me._CostPrice <> value Then
                Me._CostPrice = value
                OnPropertyChanged(CostPrice_Const)
            End If
        End Set
    End Property

    Const WholesalePrice_Const As String = "WholesalePrice"
    Public Property WholesalePrice() As Single
        Get
            Return Me._WholesalePrice
        End Get
        Set(ByVal value As Single)
            If Me._WholesalePrice <> value Then
                Me._WholesaleProfitPercentage = value
                OnPropertyChanged(WholesalePrice_Const)
            End If
        End Set
    End Property

    Const RetailPrice_Const As String = "RetailPrice"
    Public Property RetailPrice() As Single
        Get
            Return Me._RetailPrice
        End Get
        Set(ByVal value As Single)
            If Me._RetailPrice <> value Then
                Me._RetailPrice = value
                OnPropertyChanged(RetailPrice_Const)
            End If
        End Set
    End Property

    Const LaborHours_Const As String = "LaborHours"
    Public Property LaborHours() As Single
        Get
            Return Me._LaborHours
        End Get
        Set(ByVal value As Single)
            If Me._LaborHours <> value Then
                Me._LaborHours = value
                OnPropertyChanged(LaborHours_Const)
            End If
        End Set
    End Property

    Const WholesaleProfitPercentage_Const As String = "WholesaleProfitPercentage"
    Public Property WholesaleProfitPercentage() As Decimal
        Get
            Return Me._WholesaleProfitPercentage
        End Get
        Set(ByVal value As Decimal)
            If Me._WholesaleProfitPercentage <> value Then
                Me._WholesaleProfitPercentage = value
                OnPropertyChanged(WholesaleProfitPercentage_Const)
            End If
        End Set
    End Property

    Const RetailProfitPercentage_Const As String = "RetailProfitPercentage"
    Public Property RetailProfitPercentage() As Decimal
        Get
            Return Me._RetailProfitPercentage
        End Get
        Set(ByVal value As Decimal)
            If Me._RetailProfitPercentage <> value Then
                Me._RetailProfitPercentage = value
                OnPropertyChanged(RetailProfitPercentage_Const)
            End If
        End Set
    End Property

    Const ProductRangeURL_Const As String = "ProductRangeURL"
    Public Property ProductRangeURL() As String
        Get
            Return Me._ProductRangeURL
        End Get
        Set(ByVal value As String)
            If Me._ProductRangeURL <> value Then
                Me._ProductRangeURL = value
                OnPropertyChanged(ProductRangeURL_Const)
            End If
        End Set
    End Property

    Const Quantity_Const As String = "Quantity"
    Public Property Quantity() As Int16
        Get
            Return Me._Quantity
        End Get
        Set(ByVal value As Int16)
            If Me._Quantity <> value Then
                Me._Quantity = value
                OnPropertyChanged(Quantity_Const)
            End If
        End Set
    End Property

End Class
